package com.cuz.array;

/***
 *编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀，则返回""
 * 示例1:
 *
 * 输入: ["flower","flow","flight"]
 * 输出: "fl"
 * 示例 2:
 *
 * 输入: ["dog","racecar","car"]
 * 输出: ""
 * 解释:
 *
 * 输入不存在公共前缀。
 * 说明：
 *
 * 所有输入只包含小写字母 a-z
 */
public class LongestCommonPrefix {

    public static void main(String[] args) {
        System.out.println(longestCommonPrefixOf(new String[]{"c", "acc", "ccc"}));
    }

    public static String commonPrefixOf(String str1, String str2) {
        while (str1.indexOf(str2) != 0) {
            str2 = str2.substring(0, str2.length() - 1);
        }
        return str2;
    }

    public static String longestCommonPrefixOf(String[] strings) {
        if (strings == null || strings.length == 0) {
            return "";
        }
        String res = strings[0];
        for (int i = 1; i < strings.length; i++) {
            res = commonPrefixOf(strings[i], res);
        }
        return res;
    }

}
